package com.ruoyi.school.service;

import com.ruoyi.school.domain.PacActualOutput;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.school.domain.vo.AcademicCommonVo;
import com.ruoyi.school.domain.vo.HonorWallTopThreeVo;
import com.ruoyi.school.domain.vo.PacAcademicOutputVo;
import com.ruoyi.school.domain.vo.PacActualOutputVo;
import com.ruoyi.school.handler.wall.WallTopThree;
import com.ruoyi.system.domain.TableData;

import java.util.List;

/**
* @author jeremylin
* @description 针对表【pac_actual_output(实战成果表)】的数据库操作Service
* @createDate 2025-05-27 03:22:10
*/
public interface PacActualOutputService extends IService<PacActualOutput> {

    TableData<PacActualOutputVo> getList(PacAcademicOutputVo academicOutput);

    PacActualOutput getDetails(PacActualOutput pacAcademicOutput);

    boolean add(PacActualOutput pacAcademicOutput);

    boolean addByStu(PacActualOutput pacAcademicOutput);

    boolean edit(PacActualOutput pacAcademicOutput);

    boolean editByStu(PacActualOutput pacAcademicOutput);

    boolean delete(PacActualOutput pacAcademicOutput);

    boolean wall(AcademicCommonVo academicCommonVo);

    List<PacActualOutput> myList(PacActualOutput pacAcademicOutput);

    /**
     * 审批
     * @param pacAcademicOutput
     */
    void audit(PacActualOutput pacAcademicOutput);

    /**
     * 下墙
     * @param academicCommonVo
     * @return
     */
    boolean unWall(AcademicCommonVo academicCommonVo);

    /**
     * 荣誉墙前三
     * @param builder
     * @return
     */
    List<HonorWallTopThreeVo> getTopThree(WallTopThree builder);

    /**
     * 获取学生的荣誉列表
     * @param wallTopThree
     * @return
     */
    List<HonorWallTopThreeVo> getStuHonorList(WallTopThree wallTopThree);

    /**
     * 参与实战成果
     * @param pacAcademicOutput
     * @return
     */
    boolean join(PacActualOutput pacAcademicOutput);

    long countByAudit();

    /**
     * 前五数据
     * @param id
     * @return
     */
    List<PacActualOutput> selectStuTop5(Integer id);
}
